<?php

/**
 * trasferencias actions.
 *
 * @package    practil
 * @subpackage trasferencias
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class trasferenciasActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {

      $condicion = $request->getParameter('condicion');
      if($condicion!=''){

        if($condicion == "busqueda_usuario"){
        $email = $request->getParameter('txtUsuario');

        $criterio = new Criteria();
        $criterio ->add(UsuarioPeer::EMAIL, '%'.$email.'%',Criteria::LIKE);

        $usuario = UsuarioPeer::doSelectOne($criterio);
        $id= $usuario->getId();
         $this->getUser()->setAttribute('cod_usuario_abono',$id);
        $this->objusuario = $usuario;
         $this->respuesta = "Busqueda Exitosa";
      }if($condicion == "asigar_saldo"){

      $fecha = time("d/m/a");
      $monto = $request->getParameter('txtMonto');
      $observaciones = $request->getParameter('txtobservaciones');
      $id_usuario = $this->getUser()->getAttribute('cod_usuario_abono',null);

      if($id_usuario != null){
          
      $con = Propel::getConnection();
      try{
      $criteria = new Criteria();
      $criteria->add(UsuarioPeer::ID, $id_usuario);
      $usuario_update = UsuarioPeer::doSelectOne($criteria);
      $usuario_update->setCredito($usuario_update->getCredito() + $monto);
      $usuario_update->save();
      }catch(Exception $e){
        $con->rollback();
         throw $e;
         $this->respuesta = "No se Actualizo el saldo en el usuario";
         return sfView::ERROR;
      }
      try{
                $new_cuenta_usuario = new EstadoCuentaUsuario();
                 $new_cuenta_usuario->setMonto($monto);
                 $new_cuenta_usuario->setFechaTrasaccion($fecha);
                 $new_cuenta_usuario->setDescripcionTrasaccion("Abono de Credito del Sistema");
                 $new_cuenta_usuario->setMovimientoOperacion("E");
                 $new_cuenta_usuario->setUsuarioId($usuario_update->getId());
                 $new_cuenta_usuario->save();

      }catch(Exception $e){
        $con->rollback();
         throw $e;
         $this->respuesta = "No se inserto en la tabla estado de cuenta";
         return sfView::ERROR;
      }
      try{
          $new_registro_abono_admin = new AdministradorDeposito();
          $new_registro_abono_admin->setMontoDeposito($monto);
          $new_registro_abono_admin->setFechaCreacion($fecha);
          $new_registro_abono_admin->setObservaciones($observaciones);
          $new_registro_abono_admin->setUsuarioId($id_usuario);
          $new_registro_abono_admin->save();
          $con->commit();
          $this->respuesta = "Exito al Abonar el monto de ".$monto." soles " ;
           $this->objusuario = null;
           $this->getUser()->getAttributeHolder()->remove('cod_usuario_abono');
      }catch(Exception $e){
          $con->rollback();
         throw $e;
         $this->respuesta = "No se inserto en la tabla AdministradorDeposito";
         return sfView::ERROR;
      }
      
      }else{
       $this->respuesta = "Primero deberá hacer la busqueda del Usuario, Ingrese su email porfavor";
      $this->objusuario = null;
      }
        
      }

      }else{
          $this->objusuario = null;
           $this->respuesta = null;
      }



  }


     public function executeEvaluador(sfWebRequest $request)
  {
        $valor_sub_menu = $this->getUser()->getAttribute('s_sub_menu','null');
        $this->getUser()->setAttribute('s_sub_menu','2');
        $this->redirect('trasferencias/index');
  }

  public function executeDetalle_transferencias(sfWebRequest $request){

      $email = $request->getParameter('txtUsuario');
        $criterio = new Criteria();
        $criterio ->add(UsuarioPeer::EMAIL, '%'.$email.'%',Criteria::LIKE);

        $usuario_busqueda = UsuarioPeer::doSelectOne($criterio);
        if(count($usuario_busqueda)>0){
            $new_criteria = new Criteria();
            $new_criteria->add(UsuarioTrasferenciaPeer::USUARIO_EMISOR_ID, $usuario_busqueda->getId());
             $new_criteria->addSelectColumn(UsuarioPeer::NOMBRE);//0
            $new_criteria->addSelectColumn(UsuarioTrasferenciaPeer::MONTO);  //1
            $new_criteria->addSelectColumn(UsuarioTrasferenciaPeer::FECHA_CREACION); //1
           
            
            $new_criteria->addJoin(UsuarioTrasferenciaPeer::USUARIO_RECEPTOR_ID,UsuarioPeer::ID);           


            $detalle =  UsuarioTrasferenciaPeer::doSelectStmt($new_criteria);
            $this->cabecera = $usuario_busqueda;
            $this->lista_Detalle = $detalle;

            
        }else{
             $this->cabecera = null;
            $this->lista_Detalle =  null;
        }

  }
  public function executeDetalle_depositos(sfWebRequest $request){

  $email = $request->getParameter('txtUsuario');

   $criterio = new Criteria();
   $criterio ->add(UsuarioPeer::EMAIL, '%'.$email.'%',Criteria::LIKE);
   $usuario_busqueda = UsuarioPeer::doSelectOne($criterio);

   if($usuario_busqueda != null){
       $new_criteria = new Criteria();
       $new_criteria ->add(UsuarioDepositoPeer::USUARIO_ID,$usuario_busqueda->getId());

       $busqueda_deposito = UsuarioDepositoPeer::doSelect($new_criteria);
       $this->lista_depositos = $busqueda_deposito ;
       $this->cabecera= $usuario_busqueda;


   }else{
       $this->lista_depositos= null ;
       $this->cabecera= null;
   }


  }
public function executeDetalle_admin_asignacion(sfWebRequest $request){

  $email = $request->getParameter('txtUsuario');

   $criterio = new Criteria();
   $criterio ->add(UsuarioPeer::EMAIL, '%'.$email.'%',Criteria::LIKE);
   $usuario_busqueda = UsuarioPeer::doSelectOne($criterio);

   if($usuario_busqueda != null){
     $new_criteria = new Criteria();
     $new_criteria->add(AdministradorDepositoPeer::USUARIO_ID, $usuario_busqueda->getId());
     $usuario_deposito = AdministradorDepositoPeer::doSelect($new_criteria);
     $this->listaDepositoAdmin = $usuario_deposito;
     $this->cabecera = $usuario_busqueda;
   }else{
       $this->listaDepositoAdmin = null;
     $this->cabecera = null;
   }


  }

}
